"""
Модуль для анализа и визуализации данных графов и маршрутов связи.

Модуль выполняет функции:
- Получает конфигурацию из файла config.yaml
- Кластеризует объекты методом K-Means согласно конфигурации
- Генерирует граф сети на основе информации об объектах и кластерах.
- Визуализирует результаты на 3D графике
- Выводит статистические результаты в терминал
"""
from swarm_network import charts
from swarm_network import clusters
from swarm_network import data
from swarm_network import graph

# Чтение конфигурации и установка параметров генерации
config = data.read_config('config.yaml')
data_directory = config['data_directory']
count_clusters = config['count_clusters']
base_point = config['base_point']
data_filename = config['data_filename']

# Ручное конфигурирование
# data_filename = "data-grid-100-side100000-z1000"
count_clusters = 10
line_size = 0.8

# Получение объектов из файла
df_objects = data.get_data(data_directory, data_filename)

# Кластеризация
df_objects, df_clusters = clusters.clustering(df_objects, count_clusters, base_point)

# Создание графа
Graph = graph.generate_graph(df_objects, df_clusters, base_point)

# Визуализация графа
charts.print_graph_connections(Graph, "Визуализация всех машртутов связи без фильтрации", True, line_size)

# Статистические данные
graph.print_stat(Graph)
